\chapter{QAbstractAudioInput}

QAbstractAudioInput类为QAudioInput类提供了访问音频设备的方法。（通过插件的形式）

\begin{tabular}{|r|l|}
	\hline
	属性 & 方法 \\
	\hline
	头文件 & \#include <QAbstractAudioInput>\\      
	\hline
	qmake &QT += multimedia\\      
	\hline
	继承&QObject \\
	\hline
\end{tabular}

简述

\section{公有有函数}

\begin{longtable}[l]{|r|l|}
  \hline
  类型&方法\\
  \hline
  virtual int	&bufferSize() const = 0\\
  \hline
  virtual int	&bytesReady() const = 0 \\
 \hline
  virtual qint64	&elapsedUSecs() const = 0\\
  \hline
  virtual QAudio::Error&	error() const = 0\\
  \hline
virtual QAudioFormat&	format() const = 0\\
\hline
  virtual int&	notifyInterval() const = 0\\
\hline
  virtual int&	periodSize() const = 0\\
\hline
  virtual qint64&	processedUSecs() const = 0\\
  \hline
  virtual void	&reset() = 0\\
  \hline
  virtual void&	resume() = 0\\
  \hline
  virtual void	&setBufferSize(int value) = 0\\
  \hline
  virtual void	&setFormat(const QAudioFormat \&fmt) = 0 \\
  \hline
  virtual void	&setNotifyInterval(int ms) = 0\\
  \hline
  virtual void	&setVolume(qreal) = 0\\
  \hline
  virtual void	&start(QIODevice *device) = 0\\
  \hline
  virtual QIODevice*	&start() = 0\\
  \hline
  virtual QAudio::State	&state() const = 0\\
  \hline
virtual void	&stop() = 0\\
\hline
  virtual void	&suspend() = 0\\
  \hline
virtual qreal	&volume() const = 0\\
  \hline
\end{longtable}

\section{信号}

\begin{tabular}{|r|l|}
	\hline
	类型 & 方法 \\
	\hline
	void & errorChanged(QAudio::Error error)\\      
	\hline
	void & notify()\\
	\hline
	void & stateChanged(QAudio::State state)\\      
        \hline
\end{tabular}

\section{详细描述}

QAbstractAudioInput类为QAudioInput类提供了访问音频设备的方法。（通过插
件的形式） QAudioDeviceInput类中保留了一个QAbstractAudioInput的实例，
并且调用的函数与QAbstractAudioInput的一致。

\begin{quote}
译者注：也就是说QAudioDeviceInput调用的函数实际上是QAbstractAudioInput的函数，就封装了一层相同函数名吧。可以自己看看源码。）
\end{quote}

这意味着QAbstractAudioInput是实现音频功能的。有关功能的描述，可以参考
QAudioInput类。 

\begin{seeAlso}
QAudioInput函数
\end{seeAlso}

\section{成员函数文档}

int QAbstractAudioInput::bufferSize() const [纯虚函数]

以毫秒为单位返回音频缓冲区的大小

int QAbstractAudioInput::bytesReady() const [纯虚函数]

以字节（bytes）为单位返回可读取的音频数据量

qint64 QAbstractAudioInput**::elapsedUSecs() const [纯虚函数]

返回调用start()函数以来的毫秒数，包括空闲时间与挂起状态的时间

QAudio::Error QAbstractAudioInput::error() const [纯虚函数]

返回错误的状态

void QAbstractAudioInput::errorChanged(QAudio::Error error) [信号signal]
当错误状态改变时，该信号被发射

QAudioFormat QAbstractAudioInput::format() const [纯虚函数]

返回正在使用的QAudioFormat(这个类是储存音频流相关的参数信息的)。

\begin{seeAlso}
setFormat()。
\end{seeAlso}

void QAbstractAudioInput::notify() [信号signal]

当音频数据的x ms通过函数setNotifyInterval()调用之后，这个信号会被发射。

int QAbstractAudioInput::notifyInterval() const [纯虚函数]

以毫秒为单位返回通知间隔

int QAbstractAudioInput::periodSize() const [纯虚函数]

以字节为单位返回其周期

qint64 QAbstractAudioInput::processedUSecs() const [纯虚函数]

返回自start()函数被调用之后处理的音频数据量(以毫秒为单位)

void QAbstractAudioInput::reset() [纯虚函数]

将所有音频数据放入缓冲区，并将缓冲区重置为零

void QAbstractAudioInput::resume() [纯虚函数]

在音频数据暂停后继续处理

void QAbstractAudioInput::setBufferSize(int value) [纯虚函数]

将音频缓冲区大小设置为value大小(以毫秒为单位) 

\begin{seeAlso}
bufferSize()。
\end{seeAlso}

void QAbstractAudioInput::setFormat(const QAudioFormat \&fmt) [纯虚函数]

设置音频格式，设置格式的时候只能在QAudio的状态为StoppedState时(QAudio::StoppedState)

void QAbstractAudioInput::setNotifyInterval(int ms) [纯虚函数]

设置发送notify()信号的时间间隔。这个ms时间间隔与操作系统平台相关，并不是实际的ms数。

void QAbstractAudioInput::setVolume(qreal) [纯虚函数]

\begin{seeAlso}
volume()函数 （设置这里应该是设置音量的值，Volume在英文中有音量的意思，官方文档这里根本就没有任何说明，说去参考valume()函数，可是valume()说又去参考SetValume()函数，这是互相甩锅的节奏么？？？坑爹啊！！！)
\end{seeAlso}

void QAbstractAudioInput::start(QIODevice *device) [纯虚函数]

使用输入参数QIODevice *device来传输数据

QIODevice *QAbstractAudioInput::start() [纯虚函数]

返回一个指向正在用于正在处理数据QIODevice的指针。这个指针可以用来直接读取音频数据。

QAudio::State QAbstractAudioInput::state() const [纯虚函数]

返回处理音频的状态

void QAbstractAudioInput::stateChanged(QAudio::State state) [信号signal]

当设备状态改变时，会发出这个信号

void QAbstractAudioInput::stop() [纯虚函数]

停止音频输入（因为这是个QAbstractAudioInput类啊，输入类啊，暂时这么解释比较合理。）

void QAbstractAudioInput::suspend() [纯虚函数]

停止处理音频数据，保存缓冲的音频数据

qreal QAbstractAudioInput::volume() const [纯虚函数]


\begin{seeAlso}
setVolume()（内心os：参考我解释setVolume()函数的说明，这里应该是返回其音量）
\end{seeAlso}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../../master"
%%% End:
